<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 解构赋值
        // ES5
        // var arr = ["1","2","3"]
        // var a = arr[0]
        // var b = arr[1]
        // var c = arr[2]
        // console.log(a,b,c);

        //ES6
        //数组解构赋值
        // let arr = ['a','b','c']
        // let [a,b,c] = arr;
        // console.log(a,b,c);

        //互换
        // var a = 10;
        // var b = 20
        // var [b,a] = [a,b];
        // console.log(a,b);
        // 注:用let不行,因为let不能重复声明变量

        // 没有实参就是undefined
        // 可以给默认值
        // function fn([a,b,c,d='默认值']){
        //     console.log(a,'|',b,'|',c,'|',d);
        // }
        // fn(['∴﹒∴．∵¨','∴:∴︰∴﹒','∴:∵：∴¨∵¨∵¨'])

        // 多层解构
        // let arr = [1,2,[4,5]]
        // let [a,b,[c,d]] = arr
        // console.log(c,d);//4 5

        // ————————————————————————————————————————————————————
        // 2.对象的解构

        // 自定义变量接受 对象属性
        // let obj = {
        //     name:'张三',
        //     age:20,
        //     height:'178cm',
        //     other:[1,2,3],
        //     hobby:{
        //         test:'test'
        //     }
        // }
        // 前面的键名必须一样
        // 注意对象必须换成大括号
        // let{name:name,age:age,height:height} =  obj;
        
        //上面可以简写成
        // let{name,age,height,other} = obj;
        // console.log(name,age,height,other);


        //ES6对象里,如果键名和键值一样,那么可以省略
        // let name = '张三'
        // let age = 30;
        // let obj = {
        //     name,
        //     age
        // }
        // console.log(obj);

        //字符串可以解构
        //string boolean number可以调方法是因为包装对象
        // undefined null没有包装对象
        // let str = 'hello'
        // let [a,b,c,d,e] = str
        // console.log(a,b,c,d,e);

        // function mysplit(str,arg){
        //     let mystr = new String(str);
        //     return mystr.split(arg) //会自动销毁包装对象
        // }

        // var res = mysplit(str,'')
        // console.log(res);
    </script>
</body>
</html>